import { defineComponent, ref, onMounted, } from "vue";
import * as echarts from 'echarts';
export default defineComponent({
    name: "bingtu",
    setup(props, { slots }) {
        const option = ref({
            backgroundColor: '#fff',
            title: {
                text: '饼图啊',
                left: 'center',
                top: 20,
                textStyle: {
                    color: '#ccc'
                }
            },
            tooltip: {
                trigger: 'item'
            },
            visualMap: {
                show: false,
                min: 80,
                max: 600,
                inRange: {
                    colorLightness: [0, 1]
                }
            },
            series: [
                {
                    name: 'Access From',
                    type: 'pie',
                    radius: '55%',
                    center: ['50%', '50%'],
                    data: [
                        { value: 335, name: 'Direct' },
                        { value: 310, name: 'Email' },
                        { value: 274, name: 'Union Ads' },
                        { value: 235, name: 'Video Ads' },
                        { value: 400, name: 'Search Engine' }
                    ].sort(function (a, b) {
                        return a.value - b.value;
                    }),
                    roseType: 'radius',
                    label: {
                        color: 'rgba(255, 255, 255, 0.3)'
                    },
                    labelLine: {
                        lineStyle: {
                            color: 'rgba(255, 255, 255, 0.3)'
                        },
                        smooth: 0.2,
                        length: 10,
                        length2: 20
                    },
                    itemStyle: {
                        color: '#c23531',
                        shadowBlur: 200,
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    },
                    animationType: 'scale',
                    animationEasing: 'elasticOut',
                    animationDelay: function () {
                        return Math.random() * 200;
                    }
                }
            ]
        })
        const mybingtu = ref<echarts.ECharts | null>(null)
        // 挂载图表
        const initEchart = () => {
            mybingtu.value = echarts.init(document.getElementById('main')!)
        }
        // 更新图表
        const updateEchart = () => {
            mybingtu.value && mybingtu.value.setOption(option.value)
        }
        // 需要等元素挂载结束才能执行图标
        onMounted(() => {
            initEchart();
            updateEchart()
        })
        return () => (
            <div id="main" class="w-200px h-200px"></div>
        )
    },
})